package kgame5.pbe.atlantic.comp {
import kgame5.kutil.Util;
import kgame5.pbe.atlantic.vo.EntityVO;
import kgame5.pbe.engine.PBE;
import kgame5.pbe.engine.entity.EntityComponent;

import flash.display.MovieClip;
import flash.display.Sprite;

//TODO 这个是静止的
	public class SimpleViewCompV2 extends EntityComponent
	{
		//注意，这个不提供名字，因为可能有多个simpeViewComp
		//注意，vo在view模块是只读的
		protected var entVO:EntityVO;
		
		
		//容器
		//mc_c的存在是很重要的，它保证在没加载到内容的时候，已经有个mc_c可以供外部使用了
		protected var mc_c:Sprite;
		
		private var layerID:int=0;//图层,这个放在构造函数里是为了防止忘记
		
		protected var mc_item:MovieClip;
		
		public function SimpleViewCompV2(p_mc:MovieClip,entVO:EntityVO,layerID:int){
			this.entVO=entVO;
			
			
			mc_c=new Sprite();
			this.layerID=layerID;
			mc_item=p_mc;
			mc_c.addChild(p_mc);
			
			Util.CenterMC(mc_item);
			
			//填充尺寸，在这里做，其实不应放到view模块中，view模块不能对vo进行写操作
			//放在这里为了方便使用
			entVO.spcVO.bball.R=mc_item.width/2;
			entVO.spcVO.aabb.A=mc_item.width;
			entVO.spcVO.aabb.H=mc_item.height;
		}
		
		
		
		
		
		
		
		public function getDO():Sprite{
			return mc_c;
		}
		
		override protected function onAdd():void{
			super.onAdd();
			PBE.viewManager.addNode(mc_c, layerID);
			
			mc_c.x=entVO.spcVO.posi.x;
			mc_c.y=entVO.spcVO.posi.y;
		}
		
		override protected function onRemove():void{
			super.onRemove();
			PBE.viewManager.removeNode(mc_c, layerID);
		}
	}
}